クラウド上から負荷テストを実行できるSaaS型のk6クラウドに入門
以前の記事ではオープンソースのk6をちょっと触っていきましたが、今回は同じk6をクラウド上から実行できるサービスも提供されているので試していきたいと思います。
オープンソース版との比較ですが、以下のページに記載されています。
商用SaaSということなので、色々とGrafana Labs側で提供している機能が多いですね。
負荷テストのスケーリング、テスト結果の保存と視覚化、パフォーマンスの問題の検出、異なるテスト間の結果の関連付け、一元管理 ができるので、チームが負荷テストの取り組みを管理するときに便利になります。
現在、フリートライアルが利用できるようなので実際にサービスを使ってテストを実行していきたいと思います。
価格情報はこちら
アカウント作成
k6 cloudのページからフリートライアルを始めるためのリンクがあるので、そこからアクセスしてアカウントを作成します。
アカウントを作成すると、自動的に管理ダッシュボードへとリダイレクトされます。
テストスクリプトの作成
オープンソースの時と同じく、k6でテストはコードベースとなっています。
※ 今回は実行を試すだけなので、スクリプトの中身に関しては言及しません
アカウントを作成し、ログインするとMy first project
というデフォルトのプロジェクトが選択された状態です。
このプロジェクト内でテストを作成して実行していきます。
プロジェクトとは、組織レベルでテストを整理するために使用するファイリングシステムのようなもの とドキュメントに書かれていました。
チーム毎、アプリケーションごと、リリースバージョン毎 などで分割して作っていくと良いと思います。
※ プロジェクト
k6クラウドではテストの作成を2つのタイプから選択できます。
一つはTest builder
と呼ばれているもので、
グラフィカルインターフェイスを利用してk6テストを作成できます。入力に基づいて、テストビルダーは自動的にk6スクリプトを生成します。
もう一つはScript editor
と呼ばれているもので、k6のダッシュボード上からk6スクリプトを記述して作成します。
Script editorで作成
ダッシュボードの左メニューにあるCREATE NEW TEST
をクリックし、テスト作成の選択画面からScript editor
をクリックします。
上記のようにデフォルトのスクリプトが記述された状態でエディタが起動します。
スクリプトのサンプルがいくつか提供されていて、選択するとコードの中身も切り替わります。
また、HARファイルをアップロードしたり、ブラウザの操作をレコーディングして自動的にスクリプトを作成できる機能もあります。
コードを書き終えたら、CREATE
をクリックして保存します。
Test builderで作成
ダッシュボードの左メニューにあるCREATE NEW TEST
をクリックし、テスト作成の選択画面からTest builder
をクリックします。
LOAD ZONES
負荷テストを実行する場所を構成します。 負荷をすべてのゾーンに均等に分散か、手動で設定するかを選択できます。
上記は2つのゾーンで分散した例となります。
THRESHOLDS
テストの合格/不合格の基準を設定して、テスト対象のシステムの期待されるパフォーマンスを指定します
CLOUD APM
実行中のテストからリアルタイムでメトリックをエクスポートする場所を選択します
こちらはプランによって利用できるできないがあります。今回は使用しないことにしました。
Proプラン、Enterpriseプラン、年間Teamプラン、Trialで利用可能
SCENARIO
シナリオを使用すると、VUと反復のスケジュール方法を詳細に構成できます。 これにより、負荷テストでさまざまなトラフィックパターンをモデル化できます
他のテストツールと同じく、
徐々に同時実行のユーザーを増やしてテストを実施する、一定数の同時実行ユーザーで実施する、指定時間内で200回実行する などを設定できます。
上記の画像は、
最初の1分間で20ユーザーまで増やし、3分30秒間20ユーザーのままアクセスし続けて、最後の1分間でユーザーを0人にする といったモノです。
REQUESTS
各シナリオが実行するHTTPリクエストを構成します。
リクエストの名前、リクエストのエンドポイントの指定とHTTP Method, ヘッダーとクエリパラメーターとリクエスト本文の指定もできます。
また、レスポンス本文やレスポンスコードのチェックを行ったり、 環境変数を設定してスクリプトへの環境変数の受け渡し/k6オプションを構成 といったこともできるようです
スクリプトの確認
Test builderで構成した内容をスクリプトとして確認ができます。
エディタの左上部にあるトグルをscriptに切り替えるとコードが表示されます。
設定した内容がどんなコードで書かれているのかがわかるので学習にもなりそうですね。
確認が終わったらSAVEボタンを押して保存します。
テストの実行
プロジェクトのトップページに作成したテストが表示されるようになるので、メニューからRun test
を実行するか、
テストの詳細画面から実行できます。
テスト実行中は、上記のようにテスト中の状況がリアルタイムで確認できます。
結果の確認
実行完了後は、k6 Cloudで用意されているk6 Cloud Resultsという機能により、
テスト結果を視覚化、保存、分析、および傾向分析できます。
さいご
k6のクラウド版を使ってテスト実行を試してみました。
マネージドサービスのため、負荷クライアントを自前で用意する必要がない点はメリットと言えます。 今回はダッシュボードからテストを実行しましたが、k6のクライアントツールからクラウド経由でテスト実行もできるので、開発サイクルに組み込むことも容易にできるのではないでしょうか。
オープンソース版かSaaS版かを決めるためには以下の公式ドキュメントを参考にすると良いと思います。